

//给你一个整数数组 nums ，另给你一个整数 original ，这是需要在 nums 中搜索的第一个数字。 
//
// 接下来，你需要按下述步骤操作： 
//
// 
// 如果在 nums 中找到 original ，将 original 乘以 2 ，得到新 original（即，令 original = 2 * 
//original）。 
// 否则，停止这一过程。 
// 只要能在数组中找到新 original ，就对新 original 继续 重复 这一过程。 
// 
//
// 返回 original 的 最终 值。 
//
// 
//
// 示例 1： 
//
// 
//输入：nums = [5,3,6,1,12], original = 3
//输出：24
//解释： 
//- 3 能在 nums 中找到。3 * 2 = 6 。
//- 6 能在 nums 中找到。6 * 2 = 12 。
//- 12 能在 nums 中找到。12 * 2 = 24 。
//- 24 不能在 nums 中找到。因此，返回 24 。
// 
//
// 示例 2： 
//
// 
//输入：nums = [2,7,9], original = 4
//输出：4
//解释：
//- 4 不能在 nums 中找到。因此，返回 4 。
// 
//
// 
//
// 提示： 
//
// 
// 1 <= nums.length <= 1000 
// 1 <= nums[i], original <= 1000 
// 
// Related Topics 数组 哈希表 排序 模拟 👍 4 👎 0


package cn.db117.leetcode.solution21;

import java.util.HashSet;
import java.util.Set;

/**
 * 2154.将找到的值乘以 2.keep-multiplying-found-values-by-two
 *
 * @author db117
 * @since 2022-02-08 16:18:48
 **/

public class Solution_2154 {
    public static void main(String[] args) {
        Solution solution = new Solution_2154().new Solution();
    }

    //leetcode submit region begin(Prohibit modification and deletion)
    class Solution {
        public int findFinalValue(int[] nums, int original) {
            Set<Integer> set = new HashSet<>();
            for (int num : nums) {
                set.add(num);
            }

            while (set.contains(original)) {
                original *= 2;
            }

            return original;
        }
    }
//leetcode submit region end(Prohibit modification and deletion)

}